package com.wd.elec.service.impl;

import java.util.Date;
import java.util.List;

import com.wd.common.utils.DateUtils;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import com.wd.elec.mapper.AttendResultMapper;
import com.wd.elec.domain.AttendResult;
import com.wd.elec.service.IAttendResultService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 考勤结果Service业务层处理
 *
 * @author liumingkun
 * @date 2023-11-16
 */
@Service
public class AttendResultService implements IAttendResultService {
    @Resource
    private AttendResultMapper attendResultMapper;

    /**
     * 查询考勤结果
     *
     * @param resultId 考勤结果主键
     * @return 考勤结果
     */
    @Override
    public AttendResult selectAttendResultByResultId(Long resultId) {
        return attendResultMapper.selectAttendResultByResultId(resultId);
    }

    /**
     * 查询考勤结果列表
     *
     * @param attendResult 考勤结果
     * @return 考勤结果
     */
    @Override
    public List<AttendResult> selectAttendResultList(AttendResult attendResult) {
        return attendResultMapper.selectAttendResultList(attendResult);
    }

    /**
     * 新增考勤结果
     *
     * @param attendResult 考勤结果
     * @return 结果
     */
    @Override
    public int insertAttendResult(AttendResult attendResult) {
        attendResult.setCreateTime(DateUtils.getNowDate());
        return attendResultMapper.insertAttendResult(attendResult);
    }

    /**
     * 批量新增考勤结果
     *
     * @param resultList 考勤结果
     * @return 结果
     */
    @Transactional
    @Override
    public void refreshDateAttendResult(List<AttendResult> resultList,Date attendTime,Long groupId) {

        deleteAttendResult(attendTime,groupId);
        for (AttendResult attendResult : resultList) {
            insertAttendResult(attendResult);
        }

    }

    /**
     * 修改考勤结果
     *
     * @param attendResult 考勤结果
     * @return 结果
     */
    @Override
    public int updateAttendResult(AttendResult attendResult) {
        attendResult.setUpdateTime(DateUtils.getNowDate());
        return attendResultMapper.updateAttendResult(attendResult);
    }

    /**
     * 批量删除考勤结果
     *
     * @param resultIds 需要删除的考勤结果主键
     * @return 结果
     */
    @Override
    public int deleteAttendResultByResultIds(Long[] resultIds) {
        return attendResultMapper.deleteAttendResultByResultIds(resultIds);
    }

    /**
     * 删除考勤结果信息
     *
     * @param resultId 考勤结果主键
     * @return 结果
     */
    @Override
    public int deleteAttendResultByResultId(Long resultId) {
        return attendResultMapper.deleteAttendResultByResultId(resultId);
    }

    @Override
    public int deleteAttendResult(Date attendDate,Long groupId) {
        return attendResultMapper.deleteAttendResult(attendDate,groupId);
    }
}
